<?php
/**
 * 用户登录控制器
 */
require_once 'config/config.php';
require_once 'includes/functions.php';
require_once 'classes/User.php';

// 如果用户已登录，重定向到首页
if (isLoggedIn()) {
    redirect(SITE_URL);
}

// 处理登录表单提交
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $identity = sanitizeInput($_POST['identity'] ?? '');
    $password = $_POST['password'] ?? '';
    $remember = isset($_POST['remember']) ? true : false;
    
    $user = new User();
    $result = $user->login($identity, $password);
    
    if ($result['status']) {
        // 如果选择了"记住我"，设置cookie
        if ($remember) {
            $token = generateRandomString(32);
            setcookie('remember_token', $token, time() + 30 * 24 * 60 * 60, '/', '', false, true);
            
            // 在数据库中保存token
            $db = Database::getInstance();
            $db->query("UPDATE users SET remember_token = ? WHERE id = ?", [$token, $result['user']['id']]);
        }
        
        setFlashMessage('success', '登录成功，欢迎回来！');
        redirect(SITE_URL);
    } else {
        $error = $result['message'];
    }
}

// 初始化变量
$identity = $identity ?? '';
$error = $error ?? null;

// 加载视图
// 传递变量到视图
$pageTitle = '用户登录';
extract(compact('identity', 'error', 'pageTitle'));
require_once 'views/user/login.php';
